import java.util.Scanner;
import java.util.Arrays;
public class Main {
    /*给你一个整数数组 nums 和一个整数 k ，按以下方法修改该数组：
    选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。
    重复这个过程恰好 k 次。可以多次选择同一个下标 i 。
    以这种方式修改数组后，返回数组 可能的最大和 。*/
    public static int change(int[] nums,int k) {
        Arrays.sort(nums);
        int sum=0;
        //反转k个负数
        for(int i=0;i<nums.length;i++){
            if(nums[i]<0&&k>0){
                nums[i]=-nums[i];
                k--;
            }
        }
        int min=Integer.MAX_VALUE;
        for(int i=0;i<nums.length;i++){
              sum+=nums[i];
              //寻找最小值
              if(nums[i]<min)
                  min=nums[i];
        }
        //如果k为奇数，减去两倍的最小值即可，因为在前面已经加了一遍了
        if(k%2!=0){
            sum-=2*min;
        }
        return sum;
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int k=sc.nextInt();
        int maxsum=change(nums,k);
        System.out.println(maxsum);
    }
}